Skip to content

HJ99 自守数 ​

本节目标:理解“HJ99 自守数”的核心思路,并能把它用于实际开发或面试表达。 描述 自守数是指一个数的平方的尾数等于该数自身的自然数。例如:25^2 = 625,76^2 = 5776,9376^2 = 87909376。请求出n(包括n)以内的自守数的个数 数据范围: 1≤n≤10000 输入描述: int型整数 输出描述: n以内自守数的数量。 示例1 输入: 6 ==复制== 输出: 4 ==复制== 说明: 有0,1,5,6这四个自守数 示例2 输入: 1 ==复制== 输出: 2 ==复制== 说明: 有0, 1这两个自守数

要找出n以内的自守数数量,我们可以遍历从0到n的每一个数字,计算它的平方,然后检查这个平方数的尾数是否等于原数。如果等于,那么这个数就是自守数。

以下是Python代码示例:

输入 ​

n = int(input())

初始化自守数的计数器 ​

count = 0

遍历0到n,包括n ​

for i in range(n + 1):

计算当前数字的平方 ​

square = i * i

将当前数字和它的平方转换为字符串 ​

num_str = str(i) square_str = str(square)

检查平方数的尾数是否等于原数 ​

if square_str.endswith(num_str):

如果是,增加自守数计数器 ​

count += 1

输出自守数的数量 ​

print(count) 这段代码通过循环遍历0到n的每一个数字,并计算每个数字的平方。然后,它将数字和它的平方都转换为字符串,并使用str.endswith()方法检查平方数的尾部是否与原数字相匹配。如果匹配,说明这是一个自守数,将自守数计数器count加1。循环结束后,输出自守数的总数。

这种方法直观且易于实现,适用于解决此问题。

本站总访问 — 次